﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using EntitiesLayer;
using BCR.Imagenes.Servicios.Componentes;

namespace Bitacora
{
    /// <summary>
    /// Clase que permite la creación del mensaje que se enviará al servicio de Correo.
    /// </summary>
    public class MailMessage
    {

        public int documentosXProcesar { get; set; }
        public int documentosOk { get; set; }
        public int documentosNoOk { get; set; }

        private DateTime tiempoInicio;

        /// <summary>
        /// Inicializa las variables que contabilizan el proceso de los documentos.
        /// </summary>
        public MailMessage()
        {
            documentosXProcesar = 0;
            documentosOk = 0;
            documentosNoOk = 0;
            tiempoInicio = DateTime.Now;
        }

        /// <summary>
        /// Genera el cuerpo del correo a ser enviado.
        /// </summary>
        /// <returns></returns>
        public String toString()
        {
            return "<html><head></head><body><html><head>" +
                "<style type='text/css'><!--.Estilo1 {font-family: Arial, Helvetica, sans-serif; font-weight: bold;}.Estilo2 {font-family: Arial, Helvetica, sans-serif}.Estilo4 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; color: #CC0000; }.Estilo6 { font-family: Arial, Helvetica, sans-serif; color: #FFFFFF; font-weight: bold;}--></style>" +
                "</head><body><table width='700' border='1' cellspacing='0' cellpadding='0'><tr><td>" +
                "<table width='700' border='0' cellspacing='0' cellpadding='1'><tr height='20'>" +
                "<td colspan='5'><div align='lefth'><div align='center' class='Estilo1'>Batch Importer<br/>" + "FECHA: " + DateTime.Now.ToString("yyyy'-'MM'-'dd HH':'mm") + "</div></td></tr><tr height='20'>" +
                "<td width='163'><span class='Estilo2'></span></td><td width='54'><span class='Estilo2'></span></td><td width='157'>" +
                "<span class='Estilo2'></span></td><td width='157'><span class='Estilo2'></span></td><td width='159'><span class='Estilo2'></span></td>" +
                "</tr><tr height='20'><td><span class='Estilo2'><strong>Sistema</strong>:</span></td><td colspan='4'>Sistema de Deteccion de Duplicados</td></tr><tr height='20'><td>&nbsp;</td>" +
                "<td colspan='4'>&nbsp;</td></tr><tr height='20'><td><span class='Estilo2'><strong>Estado del Proceso: </strong></span></td><td colspan='4'><span class='Estilo2'>Finalizado</span></td></tr>" +
                "<tr height='20'><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td></tr><tr height='20'><td><span class='Estilo1'>Total Documentos Pendientes: </span></td><td colspan='4'><span class='Estilo2'>" + this.documentosXProcesar + "</span></td></tr>" +
                "<tr height='20'><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td></tr><tr height='20'><td><span class='Estilo1'>Total Documentos Procesados:</span></td><td colspan='4'><span class='Estilo2'>" + this.documentosOk + "</span></td></tr>" +
                "<tr height='20'><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td><td><span class='Estilo2'></span></td></tr><tr height='20'><td><span class='Estilo1'>Total Documentos No Procesados:</span></td><td colspan='4'><span class='Estilo2'>" + this.documentosNoOk + "</span></td></tr>" +
                "<tr height='20'><td>&nbsp;</td><td></td><td></td><td></td><td></td></tr><tr height='20'><td colspan='5' bgcolor='#003366'>" +
                "<div align='center'><span class='Estilo6'>Breve Descripcion</span></div></td></tr>" +
                "<tr height='20'><td colspan='5'><span class='Estilo2'>El proceso tardo" + DateTime.Now.Subtract(tiempoInicio).ToString() + " tiempo en procesar todos los documentos</span></td></tr><tr height='20'>" +
                "</body></html></body></html>";
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="servicioCarga"></param>
        public void EnviarMensaje(bool servicioCarga = true)
        {
            string _encabezadoCorreo = "";
            if (servicioCarga)
                    _encabezadoCorreo = "Resultados del Procesamiento del Servicio de Carga [Batch Importer]";
                else
                    _encabezadoCorreo = "Resultados del Procesamiento del Servicio de Lectura [Batch Importer]";
            
            string _correos = "";
            for (int i = 0; i < Configuracion.listaEmails.Length; i++)
                {
                    _correos = _correos+Configuracion.listaEmails[i];
                }

            AdministrarCorreos.AdministrarSinRespuesta(Configuracion.identificacionSistema,_correos,_encabezadoCorreo,this.toString());
            
        }


    }
}
